/*
 * @Author: 陈其旺
 *
 * @Date: 2020-05-05 11:01:03
 * @
# Description:
 */

/**
 * 全局过滤器
 * 在不改变字符串内容的情况下转换字符串显示
 */
import {
  parseTime
} from '@/utils/index.js'
import Vue from 'vue'
/**
 * 时间戳转换为北京时间字符串
 * 1562557786000 => "2019/07/08 11:49:46"
 * @param {time} time
 * @return {string}
 */
export function timeString(time) {
  if (time) {
    return parseTime(time)
  }
  return ''
}

/**
 * 时间戳转换为北京时间字符串
 * @param {string} date
 * @param {string} formatStr
 * @return {string}
 */
export function dateString(date, formatStr) {
  if (date) {
    return parseTime(date, formatStr || '{y}/{m}/{d}')
  }
  return ''
}

/**
 * 数字千位分隔符显示
 * 10000 => "10,000"
 * @param {number} num
 */
export function toThousandFilter(num) {
  return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}

/**
 * @description: 百分比
 * @param {*} value
 * @return {*}
 */
export function percentText(value) {
  if (value) {
    return value + '%'
  }
  return '0%'
}

/**
 * @description: 暂时没有数据的提示
 * @param {string} 源数据
 * @return {any} 源数据或者暂无
 */
export function emptyData(value, tips) {
  if (value || value === 0) {
    return value
  }
  return tips || '暂无'
}

const filters = {
  timeString,
  dateString
}

Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

